The present invention relates to the field of color image printing. More specifically, the present invention relates to a method and system for reducing the memory used and required by a color image printing device when receiving image data for printing.
Laser printers receive image data from various devices, known generally as printer client devices. Printer client devices may include, but are not limited to, such devices as personal computers, servers, and the like. The image data is generally buffered within the printer as it is received and then sent to a print engine that causes the image to be reproduced on a print medium, such as a sheet of paper, using the toner supplied within the printer.
Laser printers are synchronous print engines, meaning that once the printing of a page has begun, the paper will be moved through the printer at a constant speed as the image is printed. The paper or other print medium continues to move at that constant speed until the printing is complete. The same is true of a color printer in which separate color components of the image are sequentially printed on an intermediate transfer belt and then transferred to paper or another print medium when the image is complete.
Because the movement of the paper or intermediate transfer belt is continuous, the image data must be available to the print engine at least as quickly as is required to keep pace with the movement of the paper. The image data is buffered by the printer""s formatter and then passed by the formatter to the print engine. The print engine then drives the mechanisms of the printer to produce the printed image represented by the image data.
Problems occur, for example, it the data from the formatter does not keep up with the movement of the paper so that the paper continues to move while the print engine does not have image data to print, a print error, called a page punt, occurs. The printed image is then disrupted and unacceptable.
In the past, there have been two principal approaches to avoiding page punts. In the first approach, no data is sent to the print engine from the formatter and printing is not commenced until the formatter has received all the data for the image being printed. In this way, there is no possibility that the formatter will run out of data to pass to the print engine during printing. The second approach to avoiding page punts is to provide a communications system between the printer client and the printer""s formatter that attempts to ensure that the printer client can and will provide the formatter with additional image data as quickly as needed.
Most current laser printers adopt the first approach and require that all image data be received and buffered by the formatter before printing is commenced. At least one current laser printer on the market attempts to provide an assured system of data communication between the printer client and the formatter using, for example, the Windows(copyright) Printing System (also called at-work printing or resource based printing architecture).
The problem with this approach is that the system that attempts to ensure timely communication between the printer client and the formatter is very dependent on the characteristics of the printer client, the input/output system, the operating system of the printer client, and the other demands being placed on the printer client device. Consequently, this approach is extremely difficult to generalize so as to be widely applicable.
However, the alternate approach of holding the print job until all the image data is received by the formatter also has problems. For example, this approach requires a delay of time to transmit all the image data to the printer before printing can begin. Additionally, the memory in the printer must be expansive enough to store all the data required by the image being printed. The cost of providing sufficient memory for this function obviously adds to the overall cost of the printer.
In fact, the memory required to buffer the data for an entire color image can be very large. By way of comparison, a monochromatic image printed at a density of 1200 dots per inch (DPI) on a letter size sheet of paper requires approximately 16 megabytes of data [1200 pixels/inch * 1200 pixels/inch * 8.5 inches * 11 inches * (1 byte/8 pixels)≈16 Mbytes]. The data required for a full color image is much greater. For a example, at 24 bits per pixel, a single color component or color plane for a 600 DPI letter sized image requires approximately 96 megabytes of data [600 pixels/inch * 600 pixels/inch * 8.5 inches * 11 inches * 3 bytes/pixel) ≈96 Mbytes]. Typically, there are four color components or color planes in a full color image, cyan (C), yellow (Y), magenta (M) and black (K). When four separate color planes are being used to define the image, the total amount of data required increases to 600 pixels/inch * 600 pixels/inch * 8.5 inches * 11 inches * 4 bytes/pixel ≈128 Mbytes.
Of course, compression techniques can be, and are used, to reduce the amount of data actually transmitted to and buffered by a color image printing device. However, the demands on the memory of the printing device are clearly great and add to its production cost. Consequently, there is a need in the art for a method and system of providing data to a color image printing device that prevents the possibility of a page punt error while also minimizing the demands placed on the memory of the color image printing device receiving the color image data.
The present invention provides a system and method of providing image data to a color image printing device that avoids page punt errors while also minimizing the demands placed on the memory buffer of the color image printing device. Consequently, the present invention address the problems in the prior art noted above.
In a preferred embodiment, the present invention may be described as a color image printing system that includes a printer driver in a printer client device that transmits image data to an image printing device one color plane at a time. The image printing device begins printing a color plane on a print medium only after all data for that color plane is received from the printer client device and buffered in the image printing device. Preferably, the printer driver begins transmitting image data for a subsequent color plane to the image printing device as soon as the image printing device begins printing a color plane, the data for which is already completely received by the image printing device.
In this way, the printing can commence more quickly, i.e., after roughly a quarter of the image data, the data for a single color plane, is transmitted. Page punts are avoided since the printer can pause between printing color planes without generating an error, and the memory requirements of the image printing device are reduced to that sufficient to buffer data for only a single color plane at a time.
The printer driver of the present invention preferably includes a rasterizer function for rasterizing the image data; and a color plane separating function for separating the image data by color plane. The image printing device preferably includes a formatter which receives the image data for each color plane in sequence from the printer client device. The formatter passes data for a particular color plane to the print engine of the image printing device only after all data for that color plane is received from the printer client device and buffered in the image printing device.
In a specific preferred embodiment, the printer client device is a host computer running an application under an operating system, such as Windows(copyright), Macintosh O/S(copyright) and UNIX. The application generates the image data and passes the image data to the printer driver for rasterization, color plane separation and downloading to the printer.
The present invention also encompasses the methods of making and operating the system described above. For example, a method of the present invention includes the steps of transmitting image data one color plane at a time to an image printing device from a printer driver in a printer client device; and beginning printing a color plane on a print medium with the image printing device only after all data for that color plane is received from the printer client device and buffered in the image printing device.
The present invention also encompasses the computer-readable instructions (software, firmware, etc.) required to operate a printing system in the manner described above. Specifically, the present invention encompasses computer-readable instructions stored in media for recording computer-readable instructions for causing processing devices in a printer client device and an image printing device to transmit image data one color plane at a time to the image printing device from the printer client device; and begin printing of a color plane on a print medium with the image printing device only after all data for that color plane is received from the printer client device and buffered in the image printing device.